package com.tssm.common.services;

/**
 * 
 * 基于对对象的基本Service操作接口类
 * 
 * @param <T>
 *            泛型
 * @author 徐龙
 * @date May 23, 2011
 */
public interface BaseService<T> {
	/**
	 * 
	 * 保存对象信息
	 * 
	 * @param t
	 * @return
	 */
	public abstract boolean save(T t);

	/**
	 * 
	 * 保存或修改对象信息
	 * 
	 * @param t
	 * @return
	 */
	public abstract boolean saveOrUpdate(T t);

	/**
	 * 
	 * 修改对象信息
	 * 
	 * @param t
	 * @return
	 */
	public abstract boolean update(T t);

	/**
	 * 
	 * 删除对象信息
	 * 
	 * @param t
	 * @return
	 */
	public abstract boolean delete(T t);

	/**
	 * 
	 * 通过ID来删除对象
	 * 
	 * @param c
	 *            对象Class
	 * @param id
	 *            对象ID
	 * @return
	 */
	public abstract boolean delete(Class<T> c, Integer id);

	/**
	 * 
	 * 通过对象ID得到对象信息
	 * 
	 * @param c
	 *            对象Class
	 * @param id
	 *            对象ID
	 * @return
	 */
	public abstract T get(Class<T> c, Long id);

	/**
	 * 
	 * 得到此Class对象的条数
	 * 
	 * @param c
	 *            Class对象
	 * @return
	 */
	public abstract Integer getCount(Class<T> c);
	
	/**
	 * 
	 * 
	 * @方法说明: 修改DR状态为1
	 * @param c
	 * @param id
	 * @return
	 * @作者:徐龙
	 * @日期:2011-8-25
	 */
	public boolean symbolDelete(Class<T> c, Long id);
}
